﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;

namespace oi
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("");
            Console.WriteLine("###########################################################");
            Console.WriteLine("#                                                         #");
            Console.WriteLine("#                                                         #");
            Console.WriteLine("#               CALCULADORA  HAM HAM 1.0                  #");
            Console.WriteLine("#                                                         #");
            Console.WriteLine("#                                                         #");
            Console.WriteLine("# digite: ajuda    para obter informações                 #");
            Console.WriteLine("#         sair     para fechar o programa                 #");
            Console.WriteLine("#                                               ham ham   #");
            Console.WriteLine("###########################################################");
            Console.WriteLine("");
            Console.WriteLine("");
            Console.WriteLine("");

            int num1;
            int num2;
            int num3;
            int delta;
            string cmd = "start" ;
            while (cmd != "sair")
            {
                Console.Write("cmd// ");
                cmd = Console.ReadLine();

                switch (cmd) 
                { 
                    case "?":
                        Console.WriteLine("");
                        Console.WriteLine("-------------------------------------------------");
                        Console.WriteLine("");
                        Console.WriteLine("   execute o comando ajuda");
                        Console.WriteLine("");
                        Console.WriteLine("-------------------------------------------------");
                        Console.WriteLine("");
                        break;
                    case "ajuda":
                        Console.WriteLine("");
                        Console.WriteLine("--------------------AJUDA------------------------");
                        Console.WriteLine("");
                        Console.WriteLine("  sair: para fechar o programa");
                        Console.WriteLine("  ajuda: é essa porra de comando que você acabou de digitar");
                        Console.WriteLine("  tabuada: exibe a tabuada de um numero");
                        Console.WriteLine("  bhaskara: calculo pela formula bhaskara");
                        Console.WriteLine("  somar: somar 2 numeros");
                        Console.WriteLine("  subtrair: subtrair 2 numeros");
                        Console.WriteLine("  multiplicar: multiplicar 2 numeros");
                        Console.WriteLine("  dividir: dividir 2 numeros");
                        Console.WriteLine("");
                        Console.WriteLine("-------------------------------------------------");
                        Console.WriteLine("");
                        break;
                    case "tabuada":
                        try{
                        int tabuada;
                        Console.Write("entre um nº// ");
                        tabuada = int.Parse(Console.ReadLine());
                        int tabuada1 = tabuada * 1;
                        int tabuada2 = tabuada * 2;
                        int tabuada3 = tabuada * 3;
                        int tabuada4 = tabuada * 4;
                        int tabuada5 = tabuada * 5;
                        int tabuada6 = tabuada * 6;
                        int tabuada7 = tabuada * 7;
                        int tabuada8 = tabuada * 8;
                        int tabuada9 = tabuada * 9;
                        int tabuada10 = tabuada * 10;

                        Console.WriteLine("");
                        Console.WriteLine("");
                        Console.WriteLine("--------------------TABUADA----------------------");
                        Console.WriteLine("");
                        Console.WriteLine("tabuada do " + tabuada);
                        Console.WriteLine("");
                        Console.WriteLine(tabuada + " x 1  = " + tabuada1);
                        Console.WriteLine(tabuada + " x 2  = " + tabuada2);
                        Console.WriteLine(tabuada + " x 3  = " + tabuada3);
                        Console.WriteLine(tabuada + " x 4  = " + tabuada4);
                        Console.WriteLine(tabuada + " x 5  = " + tabuada5);
                        Console.WriteLine(tabuada + " x 6  = " + tabuada6);
                        Console.WriteLine(tabuada + " x 7  = " + tabuada7);
                        Console.WriteLine(tabuada + " x 8  = " + tabuada8);
                        Console.WriteLine(tabuada + " x 9  = " + tabuada9);
                        Console.WriteLine(tabuada + " x 10 = " + tabuada10);
                        Console.WriteLine("");
                        Console.WriteLine("-------------------------------------------------");
                        Console.WriteLine("");
                                                } catch { Console.WriteLine("Erro ------ somente numeros");  }
                        break;
                    case "somar":
                        try{
                        Console.Write("cmd// entre o primeiro nº// ");
                        num1 = int.Parse(Console.ReadLine());
                        Console.Write("cmd// entre o segundo nº// ");
                        num2 = int.Parse(Console.ReadLine());
                        Program.Calc("+", num1 , num2);
                        }
                        catch { Console.WriteLine("somente numeros"); }
                        break;
                    case "subtrair":
                        try{
                        Console.Write("cmd// entre o primeiro nº// ");
                        num1 = int.Parse(Console.ReadLine());
                        Console.Write("cmd// entre o segundo nº// ");
                        num2 = int.Parse(Console.ReadLine());
                        Program.Calc("-", num1, num2);
                        }
                        catch { Console.WriteLine("Erro ------ somente numeros"); }
                        break;
                    case "multiplicar":
                        try{
                        Console.Write("cmd// entre o primeiro nº// ");
                        num1 = int.Parse(Console.ReadLine());
                        Console.Write("cmd// entre o segundo nº// ");
                        num2 = int.Parse(Console.ReadLine());
                        Program.Calc("*", num1, num2);
                        }
                        catch { Console.WriteLine("Erro ------ somente numeros"); }

                        break;
                    case "dividir":
                            try{
                        Console.Write("cmd// entre o primeiro nº// ");
                        num1 = int.Parse(Console.ReadLine());
                        Console.Write("cmd// entre o segundo nº// ");
                        num2 = int.Parse(Console.ReadLine());
                        Program.Calc("/", num1, num2);
                            }
                            catch { Console.WriteLine("Erro ------ somente numeros"); }
                        break;
                    case "bhaskara":
                            try{
                        Console.Write("cmd// entre o A da questão// ");
                        num1 = int.Parse(Console.ReadLine());
                        Console.Write("cmd// entre o B da questão// ");
                        num2 = int.Parse(Console.ReadLine());
                        Console.Write("cmd// entre o C da questão// ");
                        num3 = int.Parse(Console.ReadLine());
                        delta = (num2 * num2) -4 * num1 * num3;
                        Console.WriteLine("");
                        Console.Write("X1 é: ");
                        Console.WriteLine((Math.Sqrt(delta) - num2) / (2 * num1));
                        Console.Write("X2 é: ");
                        Console.WriteLine((- Math.Sqrt(delta) - num2) / (2 * num1));
                        Console.WriteLine("");
                            }
                            catch { Console.WriteLine("Erro ------ somente numeros"); }
                        break;
                }
            }
        }

        static void Calc(string tarefa, int numb1, int numb2) 
        {
        if(tarefa == "+" )
        {
            Console.WriteLine("");
            Console.Write("      O resultado é: ");
            Console.WriteLine(numb1 + numb2);
            Console.WriteLine("");

        }else if(tarefa == "-")
        {
            Console.WriteLine("");
            Console.Write("      O resultado é: ");
            Console.WriteLine(numb1 - numb2);
            Console.WriteLine("");

        }else if(tarefa == "*")
        {
            Console.WriteLine("");
            Console.Write("      O resultado é: ");
            Console.WriteLine(numb1 * numb2);
            Console.WriteLine("");

        }
        else if (tarefa == "/")
        {
            Console.WriteLine("");
            Console.Write("      O resultado é: ");
            Console.WriteLine(numb1 / numb2);
            Console.WriteLine("");

        }


        }
    }
}
